home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / TBEXPERT.PAK / APP.CPP next >
C/C++ Source or Header  |  1997-05-06  |  3KB  |  132 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // Copyright (c) 1995, 1995 by Borland International, All Rights Reserved
  4. //
  5. // Filename:    app.cpp
  6. //
  7. // Date:        27-Sep-95
  8. //
  9. // Description:
  10. //----------------------------------------------------------------------------
  11. #include <owl/pch.h>
  12. #include "TBExpert.h"
  13.  
  14. char OriginalDir[MAXPATH];
  15. char CurrentDir[MAXPATH];
  16. bool Generate = true;
  17. TGeneratedNames Names;
  18.  
  19. TGeneratedNames::TGeneratedNames()
  20. {
  21.   FrameInstance = new char[MAXPATH];
  22.   ControlBarInstance = new char[MAXPATH];
  23.  
  24.   strcpy(FrameInstance, "frame");
  25.   strcpy(ControlBarInstance, "controlBar");
  26. }
  27.  
  28. TGeneratedNames::~TGeneratedNames()
  29. {
  30.   delete[] ControlBarInstance;
  31.   delete[] FrameInstance;
  32. }
  33.  
  34. //
  35. // Application constructor
  36. //
  37. TTBExpertApp::TTBExpertApp()
  38. :
  39.   TApplication()
  40. {
  41.   getcwd(OriginalDir, MAXPATH);
  42.   getcwd(CurrentDir, MAXPATH);
  43.   GadgetFactories = new TGadgetFactory*[MaxGadgetFactories];
  44.   for (int i = 0; i < MaxGadgetFactories; i++)
  45.     GadgetFactories[i] = 0;
  46. }
  47.  
  48.  
  49. //
  50. // Application destructor
  51. //
  52. TTBExpertApp::~TTBExpertApp()
  53. {
  54.   if (Generate) {
  55.     ofstream f("test.txt");
  56.     f << "//----------------------------------------------------------------------------" << endl;
  57.     f << "// #defines" << endl;
  58.     f << "//" << endl;
  59.     GenerateDefines(f);
  60.     f << endl;
  61.     f << "//----------------------------------------------------------------------------" << endl;
  62.     f << "// Declarations" << endl;
  63.     f << "//" << endl;
  64.     GenerateDeclarations(f);
  65.     f << endl;
  66.     f << "//----------------------------------------------------------------------------" << endl;
  67.     f << "// Code section" << endl;
  68.     f << "//" << endl;
  69.     GenerateCode(f);
  70.     f << endl;
  71.   }
  72.  
  73.   chdir(OriginalDir);
  74.   for (int i = 0; i < MaxGadgetFactories; i++)
  75.     delete GadgetFactories[i];
  76.   delete[] GadgetFactories;
  77. }
  78.  
  79.  
  80. //
  81. // InitMainWindow
  82. //
  83. void
  84. TTBExpertApp::InitMainWindow()
  85. {
  86.   TFrameWindow* frame = new TFrameWindow(0, "Toolbar Expert",
  87.     new TTBExpertWindow);
  88.   SetMainWindow(frame);
  89. }
  90.  
  91. void
  92. TTBExpertApp::GenerateDefines(ofstream& f)
  93. {
  94.   for (int i = 0; i < CountOfGadgetFactories; i++)
  95.     if (GadgetFactories[i])
  96.       GadgetFactories[i]->GenerateDefine(f);
  97. }
  98.  
  99. void
  100. TTBExpertApp::GenerateDeclarations(ofstream& f)
  101. {
  102.   f << "  TFrameWindow* " << Names.FrameInstance << ";" << endl;
  103.   f << "  TControlBar* " << Names.ControlBarInstance;
  104.   f << " = new TControlBar(" << Names.FrameInstance << ");" << endl;
  105. }
  106.  
  107. void
  108. TTBExpertApp::GenerateCode(ofstream& f)
  109. {
  110.   f << "  " << Names.FrameInstance << "->Insert(*" << Names.ControlBarInstance;
  111.   f << ", TDecoratedFrame::Top);" << endl;
  112.   for (int i = 0; i < CountOfGadgetFactories; i++) {
  113.     if (GadgetFactories[i]) {
  114.       f << "  " << Names.ControlBarInstance << "->Insert(";
  115.       GadgetFactories[i]->GenerateCode(f);
  116.       f << ");" << endl;
  117.     }
  118.   }
  119. }
  120.  
  121. //
  122. // OwlMain
  123. //
  124. int
  125. OwlMain(int /*argc*/, char* /*argv*/ [])
  126. {
  127.   InitCommonControls();
  128.   TTBExpertApp app;
  129.   return app.Run();
  130. }
  131.  
  132.